#pragma once

#include <q_shared.h>

#define MAX_FBO_COLOR_TEXTURES (4)

//Enums
typedef enum internalFormat_e
{
	IF_RGBA8,
	IF_RGBA16F,
	IF_DEPTH_COMPONENT16,
	IF_DEPTH_COMPONENT24,
	IF_STENCIL_INDEX4,
	IF_STENCIL_INDEX8
} internalFormat_t;

typedef enum textureTarget_e { TT_POT, TT_NPOT } textureTarget_t;

//Structs
typedef struct texture_s
{
	unsigned int	id;
	textureTarget_t target;
	unsigned int	width;
	unsigned int	height;
} texture_t;

typedef struct framebuffer_s
{
	unsigned int	id;
	const texture_t	*colorTextures[MAX_FBO_COLOR_TEXTURES];
	unsigned int	depthTexture;

	// will reconsider adding this back if i ever need it
	unsigned int	stencilTexture;
} framebuffer_t;